From 785e55f87ddd364f2686a3bc5ed324ec629d7ef3 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Fri, 25 Sep 2009 18:16:06 +0200 Subject: [PATCH] Bug 596250 - Gdkcursor-quartz.c doesn't implement GDK_BLANK_CURSOR Support GDK_BLANK_CURSOR. Patch by John Ralls. --- gdk/quartz/gdkcursor-quartz.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/gdk/quartz/gdkcursor-quartz.c b/gdk/quartz/gdkcursor-quartz.c index 2431eb8aa4..651952f0c1 100644 --- a/gdk/quartz/gdkcursor-quartz.c +++ b/gdk/quartz/gdkcursor-quartz.c @@ -45,6 +45,21 @@ gdk_quartz_cursor_new_from_nscursor (NSCursor *nscursor, return cursor; } +static GdkCursor * +create_blank_cursor (void) +{ + NSCursor *nscursor; + NSImage *nsimage; + NSSize size = { 1.0, 1.0 }; + + nsimage = [[NSImage alloc] initWithSize:size]; + nscursor = [[NSCursor alloc] initWithImage:nsimage + hotSpot:NSMakePoint(0.0, 0.0)]; + [nsimage release]; + + return gdk_quartz_cursor_new_from_nscursor (nscursor, GDK_BLANK_CURSOR); +} + static gboolean get_bit (const guchar *data, gint width, @@ -79,7 +94,7 @@ create_builtin_cursor (GdkCursorType cursor_type) NSImage *image; NSCursor *nscursor; - if (cursor_type >= G_N_ELEMENTS (xcursors)) + if (cursor_type >= G_N_ELEMENTS (xcursors) || cursor_type < 0) return NULL; cursor = cached_xcursors[cursor_type]; @@ -210,6 +225,10 @@ gdk_cursor_new_for_display (GdkDisplay *display, case GDK_HAND2: nscursor = [NSCursor pointingHandCursor]; break; + case GDK_CURSOR_IS_PIXMAP: + return NULL; + case GDK_BLANK_CURSOR: + return create_blank_cursor (); default: return gdk_cursor_ref (create_builtin_cursor (cursor_type)); } -- 2.30.2